package fr.umlv.m2.jee.pmlv.service.subject;

import java.util.List;

import org.springframework.ui.context.Theme;

import fr.umlv.m2.jee.pmlv.persistence.cursus.Specialty;
import fr.umlv.m2.jee.pmlv.persistence.cursus.SpecialtySubject;
import fr.umlv.m2.jee.pmlv.persistence.subject.AbstractTheme;
import fr.umlv.m2.jee.pmlv.persistence.subject.Comment;
import fr.umlv.m2.jee.pmlv.persistence.subject.KeyWord;
import fr.umlv.m2.jee.pmlv.persistence.subject.Subject;
import java.util.Set;

public class DisplaySubject {
	
	private Subject subject;
	
	public DisplaySubject(Subject subject) {
		this.subject = subject;
	}

	/**
	 * Sets the name of the subject.
	 * @param name the String that is to be
	 *        the name of the subject.
	 */
	public void setName(String name) {
		subject.setName(name);
	}

	/**
	 * Returns the name of the subject.
	 * @return the name of the subject.
	 */
	public String getName() {
		return subject.getName();
	}

	/**
	 * Sets the set of key words.
	 * @param keyWords the List that is to be the set of key words
	 *        of the subject.
	 */
	public void setKeyWords(Set<KeyWord> keyWords) {
		subject.setKeyWords(keyWords);
	}

	/**
	 * Returns the list of Key words.
	 * @return the list of key words of the subject.
	 */
	public Set<KeyWord> getKeyWords() {
		return subject.getKeyWords();
	}

	/**
	 * Sets the list of comments about the subject.
	 * @param comments the List that is to be the set of comments
	 *        about the subject
	 */
	public void setComments(List<Comment> comments) {
		subject.setComments(comments);
	}

	/**
	 * Returns a list of comments posted about the subject.
	 * @return a list of comments posted about the subject.
	 */
	public List<Comment> getComments() {
		return subject.getComments();
	}



	/**
	 * Sets the list of specialties where we find the subject.
	 * @param cores a list of {@link Specialty} where we find the subject.
	 */
	public void setSpecialtySubject(Set<SpecialtySubject> specialties) {
		subject.setSpecialtySubject(specialties);
	}

	/**
	 * Returns the list of specialties where we find the subject.
	 * @return the list of {@link Specialty} where we find the subject.
	 */
	public Set<SpecialtySubject> getSpecialtySubject() {
		return subject.getSpecialtySubject();
	}

	/**
	 * Sets the List of themes associated by this subject.
	 * @param themes the set of {@link Theme} that is to be associated by
	 *        the subject.
	 */
	public void setThemes(Set<AbstractTheme> themes) {
		subject.setThemes(themes);
	}

	/**
	 * Returns the list of themes associated by this subject.
	 * @return the list of {@link Theme} associated by this subject.
	 */
	public Set<AbstractTheme> getThemes() {
		return subject.getThemes();
	}

        public Subject getSubject() {
            return subject;
        }
}
